home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * "tifload.cci" : TIFFデータの表示
- *************************************************************************/
-
- #include "ccilib.h"
-
- /* パレットデータ(HEwin 配色) */
- char PltDat[3][16] =
- {
- /* G R B */
- { 0, 0, 0}, /* C_BALCK, C_THROUGH */
- { 0, 0, 0}, /* C_BLUE , C_MBLACK */
- { 7, 7, 8}, /* C_RED */
- {12,12,13}, /* C_MAGENTA */
- { 6, 5, 7}, /* C_GREEN */
- { 8, 7, 9}, /* C_CYAN */
- {10, 9,11}, /* C_YELLOW */
- {11,11,12}, /* C_WHITE */
-
- { 5, 5, 6}, /* C_HBALCK */
- { 0, 0,11}, /* C_HBLUE */
- { 0,11, 0}, /* C_HRED */
- { 0,11,11}, /* C_HMAGENTA */
- {11, 0, 0}, /* C_HGEEN */
- {11, 0,11}, /* C_HCYAN */
- {11,11, 0}, /* C_HYELLOW */
- {14,14,15} /* C_HWHITE */
- };
-
- char *IdlDspTime = NULL;
-
- /*************************************************************************
- * 初期化画面の描画
- *************************************************************************/
-
- int init_dsp()
- {
- DSP_writePage(1); /* 書き込みページ */
- DSP_setPlt( PltDat ); /* パレット設定 */
- DSP_title("TIFLOAD","0.99",C_HWHITE,C_WHITE,C_MBLACK,C_HBLACK);
- IdlDspTime = evt_setDspTime( 1, 432, 4, C_WHITE, C_MBLACK ); /* 時刻表示アイドリング処理設定 */
- SYL_clear();
- }
-
- /*************************************************************************
- * 初期化
- *************************************************************************/
-
- int init()
- {
- DSP_sysInit(0); /* 表示システム初期化 */
- KBF_sysInit(); /* キーボードシステム初期化 */
- KBF_kan_off();
- FDL_sysInit(); /* ファイルダイアログ初期化 */
-
- sdk_control(0); /* サイドワーク起動禁止 */
-
- DSP_writePage(0); /* 書き込みページ */
- DSP_setPlt( PltDat ); /* パレット設定 */
- DSP_boxf(0,24,639,463,PSET,COLMIX(5,6));
-
- init_dsp();
- }
-
- /*************************************************************************
- * 終了
- *************************************************************************/
-
- int term()
- {
- FDL_sysEnd();
- KBF_sysEnd();
- DSP_sysEnd();
- }
-
- /*************************************************************************
- * TIFFデータ読み込み&表示
- *************************************************************************/
-
- int tif_load()
- {
- int i, x, y, ret, pixel, md, x0, y0;
- short fr[4];
- char *fdl; /* ファイルダイアログ用 */
- char *fn; /* ファイル名取得用 */
- char *img; /* TIFF表示用ワーク */
-
- img = NULL;
- x = y = DLGPOS_CENTER_OF_SCN; /* ダイアログ&メニュー表示位置 */
-
- if ( (fdl = FDL_open(0)) == NULL )
- return (ERR);
- FDL_set_title( fdl, "TIFF LOAD");
- FDL_set_wildcard( fdl, "*.tif");
-
- for(;;)
- {
- ret = FDL_start(fdl);
- if ( ret != NORMAL )
- break;
- fn = FDL_get_filename(fdl);
- if ( *fn == '\0' )
- continue;
-
- if ( (img = IMG_open()) == NULL )
- { /* error */
- FDL_close(fdl);
- return (ERR);
- }
-
- IMG_setPage(img ,0); /* 表示ページ指定 */
- IMG_setAtt(img,IMG_ATT_PLTON); /* パレット設定属性ON */
-
- if ( IMG_load(img,fn) == NORMAL )
- {
- IMG_getFr(img,fr); /* 画像データの大きさを取得 */
- pixel = IMG_getPixel(img);
- switch ( pixel )
- {
- case 1: /* モノクロ */
- case 4: /* 16色 */
- x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
- y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
- md = 3;
- break;
- case 8: /* 256 色 */
- x0 = (640 - (fr[2] - fr[0] + 1)) / 2;
- y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
- md = 14;
- break;
- case 16: /* 32768 色 */
- x0 = (512 - (fr[2] - fr[0] + 1)) / 2;
- y0 = (480 - (fr[3] - fr[1] + 1)) / 2;
- md = 17;
- break;
- default:
- goto _TIF_ERR;
- }
- IMG_setPos(img,x0,y0); /* 表示位置補正 */
- MOS_COFF(); /* マウスカーソル消去 */
- EVT_idl_stop(IdlDspTime);
-
- DSP_writePage(1);
- EGB_color(EgbPtr,1,0);
- EGB_clearScreen(EgbPtr);
-
- EGB_resolution(EgbPtr,0,md); /* 画面モード設定 */
- DSP_writePage(0);
- EGB_color(EgbPtr,1,0);
- EGB_clearScreen(EgbPtr);
-
- IMG_dsp(img);
- while ( kbhit() == 0 && MOS_pget(&x0,&y0) == 0 )
- EVT_idl();
- while ( MOS_pget(&x0,&y0) )
- EVT_idl();
- for ( i = 0; i < 2; ++i )
- EGB_resolution(EgbPtr,i,3);
- init_dsp();
- KBF_clear();
- EVT_idl_start(IdlDspTime);
- } else
- {
- _TIF_ERR: MNU_sure( x, y, C_MBLACK, C_DLGBASE, COLMIX(C_ERROR,C_GRAY),
- SELBTN_ATT_CENTER, " %s \n Tiff load error!! ", fn );
- }
- if ( img )
- {
- IMG_close(img);
- img = NULL;
- }
- }
- FDL_close(fdl);
-
- return (NORMAL);
- }
-
- /*************************************************************************
- * MAIN
- *************************************************************************/
-
- int main()
- {
- init();
-
- tif_load();
-
- term();
- return (0);
- }
-